import { t } from 'i18next'
import dayjs from '@/plugins/dayjs'
import { SystemInfoItem, CometdMessage } from './interface'

export interface ISysMsg {
	time: string
	name: string
	msg: string
	id?: string
}
export function transSystemInfo(item: SystemInfoItem | CometdMessage): ISysMsg {
	const time = dayjs(item.created_at).format('YYYY-MM-DD HH:mm:ss')
	let name = item.operation_user?.name || item.operation_user?.account || ''
	let msg: string = item.operation_data || ''
	let id: string = item.id ?? ''
	switch (item.type) {
		case 'mcc_sysmsg_mtapplyadmin':
			msg = t('申请成为管理方')
			break
		case 'mcc_sysmsg_mt_apply_cancel_mute':
			msg = t('申请发言（申请取消哑音）')
			break
		case 'mcc_sysmsg_mtapplyspeaker':
			msg = t('申请成为发言方')
			break
		case 'mcc_sysmsg_mtapplydiscuss':
			msg = t('申请互动发言')
			break
		case 'mcc_sysmsg_mtapplymix':
			msg = t('申请发言（申请加入讨论，加入混音）')
			break
		case 'mcc_sysmsg_timeleft':
			name = ''
			// msg = t('你的会议还剩余 ') + item.time_left + t(' 分钟，请注意控制会议时间')
			msg = t('你的会议还剩余 {{time_left}} 分钟，请注意控制会议时间', { time_left: item.time_left })
			break
		case 'err_mcu_no_idle_mix':
			msg = t('当前没有空闲的会议资源，开启混音失败(20903)')
			break
		case 'err_mcu_nureslimited':
			msg = t('呼叫失败，会议接入资源已达上限(20420)')
			break
		case 'err_mcu_nu_sfuabnormal':
			msg = t('邀请失败，接入异常(20419)')
			break
		case 'err_mcu_mtreject':
			msg = t('拒绝参加您的会议(20402)')
			break
		case 'err_mcu_addedmt_inconf':
			msg = t('已经参加您的会议(20403)')
			break
		case 'err_mcu_mtbusy':
			msg = t('已经在其他会议中，无法参加您的会议(20410)')
			break
		case 'err_mcu_mtunreachable':
			msg = t('对端不可达，邀请失败(20401)')
			break
		case 'err_mcu_rollcall_callerleft':
			msg = t('点名人处于离线状态(20542)')
			break
		case 'err_mcu_rollcall_calleeleft':
			msg = t('被点名人处于离线状态(20543)')
			break
		case 'err_mcu_selaudbasisnotenough':
			msg = t('您选看的声音异常(20510)')
			break
		case 'err_mcu_selmediabasisnotenough':
			msg = t('选看失败，会议媒体资源不足(28552)')
			break
		case 'err_mcu_vmp_stop':
			msg = t('您的画面合成功能出现异常，请尝试重新开启该功能；若问题持续存在，请联系IT管理员(20902)')
			break
		case 'err_mcu_mix_stop':
			msg = t('您的混音器功能出现异常，请尝试重新开启该功能；若问题持续存在，请联系IT管理员(20904)')
			break
		case 'err_mcu_bas_stop':
			msg = t('您的会议图像出现异常，请尝试重新召开会议；若问题持续存在，请联系IT管理员(20906)')
			break
		case 'err_mcu_vrs_disc_rejected':
			msg = t('录播服务器链接断开，请联系管理员(20853)')
			break
		case 'err_mcu_illegal_char':
			msg = t('录像文件名中存在特殊字符，请重新输入(24103)')
			break
		case 'err_mcu_vrs_break':
			msg = t('录播服务器故障，请联系管理员(24104)')
			break
		case 'err_mcu_file_notfound':
			msg = t('您播放的录像文件不存在(24106)')
			break
		case 'err_mcu_mt_overconfsupport':
			msg = t('终端呼叫失败，添加的与会方数超过当前会议规模(20566)')
			break
		case 'err_mcu_mtnovidsrc':
			msg = t('终端无视频源，无法查看视频图像，仅可以听到音频(20513)')
			break
		case 'err_mcu_mtbusy_ocp':
			msg = t('已经在其他会议中，无法参加您的会议(20423)')
			break
		case 'err_mcu_mt_notreg':
			msg = t('当前终端未注册会议平台，入会失败(20445)')
			break
		case 'err_mcu_discussautochange2specmix':
			msg = t('无法支持更多的终端数量同时进行会议讨论，讨论已经自动停止或切换为定制混音(20314)')
			break
		case 'err_mcu_mmcuspecmix_vac':
			msg = t('已开启定制混音(20320)')
			break
		case 'err_mcu_nu_exception':
			msg = t('邀请失败,接入异常(20390)')
			break
		case 'err_mcu_normal_drop':
			msg = t('呼叫已挂断(20391)')
			break
		case 'err_mcu_callsmcufailed_busy':
			msg = t('已经在其他会议中，呼叫超时(20392)')
			break
		case 'err_mcu_chairman_drop':
			msg = t('管理方已退出会议(20393)')
			break
		case 'err_mcu_mmcu_drop':
			msg = t('上级会议已拒绝(20394)')
			break
		case 'err_mcu_authfailed_drop':
			msg = t('邀请失败，国密加密认证失败(20395)')
			break
		case 'err_mcu_mtbackgroudtask_failed':
			msg = t('邀请失败，对端APP可能未正常运行(20396)')
			break
		case 'err_mcu_genrandomfailed':
			msg = t('邀请失败，呼叫超时(20424)')
			break
		case 'err_mcu_overmaxmixerchnnl':
			msg = t('参与混音的终端数量已达最大值，部分终端将无法参与讨论(20315)')
			break
		case 'err_mcu_vrs_genrandomfailed':
			msg = t('邀请失败，呼叫超时(20859)')
			break
		case 'err_mcu_client_disconnect':
			msg = t('系统码流转发服务异常，终端已离线；若长时间未恢复，请联系IT管理员(21753)')
			break
		case 'err_mcu_client_connect':
			msg = t('系统码流转发服务已恢复，您的会议即将恢复正常(21754)')
			break
		case 'err_mcu_protocollimite_failed':
			msg = t('邀请失败，请修改呼叫协议再试(20397)')
			break
		case 'err_mcu_mt_exceedmaxconflicense':
			msg = t('呼叫失败，License接入数超限，您可申请更多资源(20565)')
			break
		case 'err_mcu_conf_reject_dismatchencypt':
			msg = t('呼叫失败，加密模式或秘钥不匹配(20389)')
			break
		case 'err_mcu_overmedialicense':
			msg = t('呼叫失败，端口授权资源不足或授权许可证已到期(21755)')
			break
		case 'err_mcu_regtypenomatch_failed':
			msg = t('呼叫失败，通讯协议不匹配(20417)')
			break
		case 'err_mcu_workerreslimited':
			msg = t('呼叫失败，会议转发资源已达上限(20418)')
			break
		case 'err_mcu_discussioner_overmaxnum':
			msg = t('加入会议失败，互动终端数已达上限(20567)')
			break
		case 'err_mcu_audience_overmaxnum':
			msg = t('加入会议失败，与会方数超过当前会议规模(20568)')
			break
		case 'err_mcu_audience_conf_failed':
			msg = t('加入会议失败，会议资源已达上限(20569)')
			break
		case 'err_mcu_apply_brdbas_fail':
			msg = t('当前会议资源不足，申请适配资源失败(20909)')
			break
		case 'err_mcu_audiomtnomonitorsrc':
			msg = t('终端为纯音频终端，无法查看视频图像，仅可以听到音频(20512)')
			break
		case 'err_mcu_casdbasisnotenough':
			msg = t('本级会议能力不足，回传失败(21741)')
			break
		case 'err_mcu_spymtstate_waitfree':
			msg = t('会议回传带宽不足，会议监控开启失败(21744)')
			break
		// case 'ERR_MCU_SPYMTSTATE_UNKNOWNERROR':
		// 	msg = '未知错误(' + item.errCode + ')，请联系服务器管理员'
		// 	break
		case 'err_mix_apply':
			msg = t('媒体资源不足(28521)')
			break
		case 'err_abas_apply':
			msg = t('媒体资源不足(28702)')
			break
		case 'err_vmp_apply':
			msg = t('媒体资源不足(28902)')
			break
		case 'err_vbas_apply':
			msg = t('媒体资源不足(29102)')
			break
		case 'err_port_getvidcodec':
			msg = t('媒体资源不足(29403)')
			break
		case 'err_port_getmerge':
			msg = t('媒体资源不足(29405)')
			break
		case 'err_audiencenum_exceed':
			msg = t('加入会议失败，与会方数超过当前会议规模(27515)')
			break
		case 'err_create_audconf_failed':
			msg = t('加入会议失败，会议资源已达上限(27517)')
			break
		case 'err_portbas_create':
			msg = t('媒体资源不足(29441)')
			break
		case 'err_mcu_mt_otherconfforcecall':
			msg = t('被其他会议呼叫，已离开当前会议(20447)')
			break
		case 'err_mau_audience_reachmaxnum':
			msg = t('切换为观众失败,观众终端已达上限(27518)')
			break
		case 'err_mcu_confnodisturb':
			msg = t('呼叫失败，终端设置为免打扰，拒绝入会(20416)')
			break
		case 'err_mcu_mt_confopenmodeclose':
			msg = t('入会失败，请关闭会议的“会议不可见”设置(20448)')
			break
		case 'err_mcu_dssclient_disconnect':
			msg = t('系统码流转发服务异常，邀请失败(20449)')
			break
		case 'err_mcu_mtadr_disconnect':
			msg = t('接入异常，邀请失败(20450)')
			break
		case 'err_mcu_mediaresnotenough':
			msg = t('端口资源不足，可能导致终端无法正常进行视频交流，您可申请更多资源(21751)')
			break
		case 'err_mcu_mediaresexceed':
			msg = t('当前机房共享资源已达上限，请配置足够的资源或更换可用机房(21761)')
			break
		case 'err_mcu_noconf':
			msg = t('呼叫失败，邀请的会议未召开(20399)')
			break
		case 'err_mcu_vmp_lackofdecodingability':
			msg = t('解码能力不足(20834)')
			break
		case 'err_mcu_mtadp_disconnect':
			msg = t('接入异常，邀请失败(20450)')
			break
		case 'err_mcu':
			msg = t('会议控制单元错误') + `(${item.error_code})`
			break
		case 'err_css':
			msg = t('会议调度错误') + `(${item.error_code})`
			break
		case 'err_tvwall':
			msg = t('电视墙错误') + `(${item.error_code})`
			break
		case 'err_mcu_media':
			msg = t('媒体资源错误') + `(${item.error_code})`
			break
		case 'err_resource':
			msg = t('资源管理错误') + `(${item.error_code})`
			break
		case 'err_mcu_resource':
			msg = t('端口资源不足，可能导致终端无法正常进行视频交流，您可申请更多资源({{errorcode}})', {
				errorcode: item.error_code,
			})
			break
		case 'err_start_mt_rec_20801':
			msg = t('请勿重复操作') + `(${item.error_code})`
			break
		case 'err_start_mt_rec_20435':
			msg = t('该终端已离线') + `(${item.error_code})`
			break
		case 'err_start_mt_rec_20063':
			msg = t('请勿重复操作') + `(${item.error_code})`
			break
		case 'err_start_mt_rec_20856':
			msg = t('当前版本暂不支持单独开启录像或者直播功能') + `(${item.error_code})`
			break
		case 'err_start_mt_rec_20857':
			msg = t('当前版本暂不支持单独停止录像或者直播功能') + `(${item.error_code})`
			break
		case 'err_start_mt_rec_21744':
			msg = t('会议回传带宽不足，录像开启失败') + `(${item.error_code})`
			break
		case 'err_unknown':
			msg = t('未知错误') + `(${item.error_code})`
			break
		case '':
			break
	}
	return { time, name, msg, id }
}
